package com.tql.mall.boss.client;

import com.tql.mall.model.product.BaseAttrInfo;
import com.tql.mall.model.product.BaseCategoryView;
import com.tql.mall.model.product.BaseTrademark;
import com.tql.mall.model.product.level.FirstLevel;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

@FeignClient("service-boss")
public interface BossFeignClient {
    /**
     * 根据描述完整商品分类信息的baseCategoryView对象获取该类商品的所有商品属性（商品属性当中包含了一系列商品属性值）
     *
     * @param baseCategoryView
     * @return
     */
    @GetMapping("/boss/api/inner/getBaseAttrInfoVoList")
    public List<BaseAttrInfo> baseAttrInfoList(BaseCategoryView baseCategoryView);


    /**
     * 以嵌套的形式返回所有分类信息（一级二级三级）
     *
     * @return
     */
    @GetMapping("/boss/api/inner/getAllClassifyInfo")
    public List<FirstLevel> getAllClassifyInfo();


    /**
     * 根据三级分类的 id，获取BaseCategoryView对象
     *
     * @param id
     * @return
     */
    @GetMapping("/boss/api/inner/getCategoryView/{id}")
    public BaseCategoryView getCategoryView(@PathVariable Long id);


    /**
     * 根据品牌ID获取品牌对象
     *
     * @param id
     * @return
     */
    @GetMapping("/boss/api/inner/getTrademarkById/{id}")
    public BaseTrademark getTrademarkById(@PathVariable Long id);
}
